home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / prog_c / cuj0696.zip / SCHROEDE.ZIP / GLYPH.CPP next >
C/C++ Source or Header  |  1996-03-26  |  2KB  |  66 lines

  1. #include "vtk.hh"
  2.  
  3. main ()
  4. {
  5.   vtkRenderMaster rm;
  6.   vtkRenderWindow *renWin=rm.MakeRenderWindow();
  7.   vtkRenderer *aren=renWin->MakeRenderer();
  8.   vtkRenderWindowInteractor *iren=renWin->MakeRenderWindowInteractor();
  9.  
  10.   // read laser data and render face
  11.   vtkCyberReader cyber;
  12.     cyber.SetFilename("fran_face");
  13.     cyber.DebugOn();
  14.  
  15.   vtkPolyNormals normals;
  16.     normals.SetInput(cyber.GetOutput());
  17.     normals.DebugOn();
  18.  
  19.   vtkPolyMapper cyberMapper;
  20.     cyberMapper.SetInput(normals.GetOutput());
  21.  
  22.   vtkActor cyberActor;
  23.     cyberActor.SetMapper(cyberMapper);
  24.     cyberActor.GetProperty()->SetColor(1,.5,.25);
  25.  
  26.   // create glyphs
  27.   vtkMaskPoints ptMask;
  28.     ptMask.SetInput(normals.GetOutput());
  29.     ptMask.SetOnRatio(100);
  30.     ptMask.RandomModeOn();
  31.  
  32.   vtkConeSource cone;
  33.     cone.SetResolution(6);
  34.  
  35.   vtkTransform transform;
  36.     transform.Translate(.5,0,0);
  37.  
  38.   vtkTransformPolyFilter transformF;
  39.     transformF.SetInput(cone.GetOutput());
  40.     transformF.SetTransform(transform);
  41.  
  42.   vtkGlyph3D glyph;
  43.     glyph.SetInput(ptMask.GetOutput());
  44.     glyph.SetSource(transformF.GetOutput());
  45.     glyph.UseNormal();
  46.     glyph.ScaleByVector();
  47.     glyph.SetScaleFactor(.004);
  48.  
  49.   vtkPolyMapper spikeMapper;
  50.     spikeMapper.SetInput(glyph.GetOutput());
  51.  
  52.   vtkActor spikeActor;
  53.     spikeActor.SetMapper(spikeMapper);
  54.     spikeActor.GetProperty()->SetColor(0,.79,.34);
  55.  
  56.   // render the actors
  57.   aren->AddActors(&cyberActor);
  58.   aren->AddActors(&spikeActor);
  59.   aren->SetBackground(.1,.2,.4);
  60.  
  61.   renWin->Render();
  62.  
  63.   // interact with data
  64.   iren->Start();
  65. }
  66.